Video encoding/decoding method and apparatus

ABSTRACT

Disclosed are a video encoding/decoding method and apparatus including a plurality of views. The video decoding method including the plurality of views comprises the steps of: inducing basic combination motion candidates for a current Prediction Unit (PU) to configure a combination motion candidate list; inducing expanded combination motion candidates for the current PU when the current PU corresponds to a depth information map or a dependent view; and adding the expanded combination motion candidates to the combination motion candidate list.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a U.S. National Stage Application of InternationalApplication No. PCT/KR2014/003517, filed on Apr. 22, 2014, which claimsthe benefit under 35 USC 119(a) and 365(b) of Korean Patent ApplicationNo. 10-2013-0126852, filed on Oct. 24, 2013, Korean Patent ApplicationNo. 10-2013-0146600, filed on Nov. 28, 2013, and Korean PatentApplication No. 10-2014-0048066, filed on Apr. 22, 2014 in the KoreanIntellectual Property Office.

BACKGROUND OF THE INVENTION Field of the Invention

The present invention is related to a method and an apparatus for videoencoding/decoding and more particularly, a method and an apparatus forconstructing a merge motion candidate list for three-dimensional (3D)video coding.

Related Art

Three-dimensional (3D) video provides a user with a vividthree-dimensional feeling through a 3D display device so that the usercan see and feel the same as if in the real-world. Related to the 3Dvideo, the Joint Collaborative Team on 3D Video Coding ExtensionDevelopment (JCT-3V), which is a joint standardization group of ISO/IECMoving Picture Experts Group (MPEG) and ITU-T Video Coding Experts Group(VCEG), is pursuing development of a 3D video standard. The 3D videostandard includes an advanced data model and technical specificationsrelated to the data model, based on which not only stereoscopic imagesbut also auto-stereoscopic images can be played by using a texture viewand its depth map information.

SUMMARY OF THE INVENTION

The present invention provides a method and an apparatus for videoencoding/decoding which can improve video encoding/decoding efficiency.

The present invention provides a method and an apparatus for 3D videoencoding/decoding which can improve encoding/decoding efficiency.

The present invention provides a method and an apparatus forconstructing a merge motion candidate list at the time of 3D videoencoding/decoding.

According to one embodiment of the present invention, a method for videodecoding that supports a multi-view is provided. The video decodingmethod comprises constructing a merge motion candidate list by derivinga default merge motion candidate with respect to a current PredictionUnit (PU), deriving an extended merge motion candidate with respect tothe current PU when the current PU is a depth map or a dependent view,and adding the extended merge motion candidate to the merge motioncandidate list.

In the step of adding the extended merge motion candidate, the extendedmerge motion candidate can be added to the merge motion candidate listwhen the extended merge motion candidate is not the same as the defaultmerge motion candidate within the merge motion candidate list.

According to another embodiment of the present invention, an apparatusfor video decoding that supports a multi-view is provided. The videodecoding apparatus comprises a default merge motion list constructionmodule configured to construct a merge motion candidate list by derivinga default merge motion candidate with respect to a current PredictionUnit (PU), and an additional merge motion list construction moduleconfigured to derive an extended merge motion candidate with respect tothe current PU when the current PU is a depth map or a dependent viewand add the extended merge motion candidate to the merge motioncandidate list.

The additional merge motion list construction module can add theextended merge motion candidate to the merge motion candidate list whenthe extended merge motion candidate is not the same as the default mergemotion candidate within the merge motion candidate list.

According to a yet another embodiment of the present invention, a methodfor video encoding that supports a multi-view is provided. The videoencoding method comprises constructing a merge motion candidate list byderiving a default merge motion candidate with respect to a currentPrediction Unit (PU), deriving an extended merge motion candidate withrespect to the current PU when the current PU is a depth map or adependent view, and adding the extended merge motion candidate to themerge motion candidate list.

In the step of adding the extended merge motion candidate, the extendedmerge motion candidate can be added to the merge motion candidate listwhen the extended merge motion candidate is not the same as the defaultmerge motion candidate within the merge motion candidate list.

According to a still another embodiment of the present invention, anapparatus for video encoding that supports a multi-view is provided. Thevideo encoding apparatus comprises a default merge motion listconstruction module configured to construct a merge motion candidatelist by deriving a default merge motion candidate with respect to acurrent Prediction Unit (PU), and an additional merge motion listconstruction module configured to derive an extended merge motioncandidate with respect to the current PU when the current PU is a depthmap or a dependent view and add the extended merge motion candidate tothe merge motion candidate list.

The additional merge motion list construction module can add theextended merge motion candidate to the merge motion candidate list whenthe extended merge motion candidate is not the same as the default mergemotion candidate within the merge motion candidate list.

A module used for encoding an ordinary video of an independent view(View 0), which provides backward compatibility, can be employeddirectly to an ordinary video of a dependent view (View 1 and View 2)and depth maps, and thus implementation complexity can be reduced.

Also, since a partial encoder is additionally applied to an ordinaryvideo of a dependent view (View 1 and View 2) and depth maps, encodingefficiency can be improved.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a brief illustration of a default structure and a data formatof a 3D video system.

FIG. 2 shows a texture view of “balloons” and one example of thecorresponding depth image.

FIG. 3 is one example illustrating a structure of inter-view predictionin a 3D video codec.

FIG. 4 is one example illustrating a procedure of encoding/decoding atexture view and a depth map in a 3D video encoder/decoder.

FIG. 5 is one example of a prediction structure of a 3D video codec.

FIG. 6 is a diagram illustrating an encoder of a 3D video codec.

FIG. 7 illustrates a method for merge motion used in a 3D HighEfficiency Video Coding (HEVC).

FIG. 8 is one example of peripheral blocks used to construct a mergemotion list with respect to a current block.

FIG. 9 is one example of a method for constructing a merge motioncandidate list implemented by hardware.

FIG. 10 illustrates a 3D video codec according to one embodiment of thepresent invention.

FIG. 11 is a conceptual diagram illustrating a method for merge motionaccording to one embodiment of the present invention.

FIG. 12 is one example of a method for merge motion of FIG. 11 accordingto one embodiment of the present invention implemented by hardware.

FIG. 13 is a conceptual diagram illustrating a method for constructing amerge motion candidate list of FIGS. 11 and 12 according to oneembodiment of the present invention.

FIG. 14 illustrates a method for constructing an extended merge motioncandidate list according to one embodiment of the present invention.

FIG. 15 illustrates a method for constructing an extended merge motioncandidate list according to another embodiment of the present invention.

FIG. 16 is a flow diagram briefly illustrating a method for constructinga merge motion candidate list according to one embodiment of the presentinvention.

FIGS. 17a to 17f are flow diagrams illustrating a method for addingextended merge motion candidates to a merge motion candidate listaccording to one embodiment of the present invention.

FIG. 18 is a flow diagram briefly illustrating a method for constructinga merge motion candidate list at the time of encoding/decoding amulti-view video according to one embodiment of the present invention.

DESCRIPTION OF EXEMPLARY EMBODIMENTS

Hereinafter, embodiments of the present invention will be described indetail with reference to the accompanying drawings. In describing theembodiments of the present specification, when it is determined that thedetailed description of the known art related to the present inventionmay obscure the gist of the present invention, the correspondingdescription thereof may be omitted.

It will be understood that when an element is simply referred to asbeing ‘connected to’ or ‘coupled to’ another element without being‘directly connected to’ or ‘directly coupled to’ another element in thepresent description, it may be ‘directly connected to’ or ‘directlycoupled to’ another element or be connected to or coupled to anotherelement, having the other element intervening therebetween. Moreover, acontent of describing “including” a specific component in thespecification does not exclude a component other than the correspondingcomponent and means that an additional component may be included in theembodiments of the present invention or the scope of the technicalspirit of the present invention.

Terms such first, second, and the like may be used to describe variouscomponents, but the components are not limited by the terms. The aboveterms are used only to discriminate one component from the othercomponent. For example, without departing from the scope of the presentinvention, a first component may be referred to as a second component,and similarly, a second component may be referred to as a firstcomponent.

Further, components described in the embodiments of the presentinvention are independently illustrated in order to show differentcharacteristic functions and each component is not constituted byseparated hardware or one software constituting unit. That is, eachcomponent includes respective components which are arranged for easydescription and at least two components of the respective components mayconstitute one component or one component is divided into a plurality ofcomponents which may perform their functions. Even an integratedembodiment and separated embodiments of each component is also includedin the scope of the present invention without departing from the spiritof the present invention.

Further, some components are not requisite components that performessential functions but selective components for just improvingperformance in the present invention. The present invention may beimplemented with the requisite component for implementing the spirit ofthe present invention other than the component used to just improve theperformance and a structure including only the requisite component otherthan the selective component used to just improve the performance isalso included in the scope of the present invention.

FIG. 1 is a brief illustration of a default structure and a data formatof a 3D video system. The 3D video system of FIG. 1 can correspond tothe basic 3D video system that is considered in the 3D video standard.

With reference to FIG. 1, the 3D Video (3DV) system can comprise asender which generates multi-view video contents and a receiver whichdecodes the video contents received from the sender and provides amulti-view video.

The sender can generate video information by using a stereo camera and amulti-view camera and generate a depth map by using a depth camera.Also, the sender can convert a 2D video into a 3D video by using aconverter. The sender can generate video contents providing N (N≥2)views by using the generated video information and depth map.

The N-view video contents can include N-view video information, thecorresponding depth map information, camera-related auxiliaryinformation, and so on. The N-view video contents can be compressed by a3D video encoder by using a multi-view video encoding method, and thecompressed video contents (bit streams) can be transmitted to areceiver-side device through a network.

The receiver can decode a received bit stream in a video decoder (forexample, a 3D video decoder, stereo video decoder, 2D video decoder, andthe like) by using a multi-view video decoding method and reconstructthe N-view video.

The reconstructed N-view video can consist of virtual viewpoint imagesof N or more viewpoints through a Depth-Image-Based Rendering (DIBR)process. The generated virtual viewpoint images of N or more viewpointsare reproduced to be fitted to various types of 3D display devices (forexample, an N-view display, stereo display, 2D display, and the like),providing the user with images causing a sensation of depth.

FIG. 2 shows a texture view of “balloons” and one example of thecorresponding depth image.

A depth map is used to generate a virtual viewpoint image, whichrepresents distance between a camera and an actual object in thereal-world (depth information at each pixel expressed in the sameresolution of a photo image) by using a predetermined number of bits.

FIG. 2(a) shows a texture view of “balloons” adopted in the 3D videoencoding standard of MPEG which is a Standards Development Organization(SDO). FIG. 2(b) is a depth map of the “balloons” image shown in FIG.2(a). The depth map of FIG. 2(b) uses 8 bits per pixel to representdepth information as shown in the image.

A method for encoding an actual image and its corresponding depth mapcan use, for example, the MPEG-4 Part 10 Advanced Video Coding(H.264/AVC) standard or High Efficiency Video Coding (HEVC)international video standard jointly developed by the MPEG and VCEG

Actual images and their depth maps can be obtained by a single ormultiple cameras. Images acquired from multiple cameras can be encodedseparately, where an ordinary 2D video codec can be used for thispurpose. Also, since inter-view correlation exists among the imagesacquired from multiple cameras, the images acquired from multiplecameras can be encoded by using inter-view prediction to increaseencoding efficiency.

FIG. 3 is one example illustrating a structure of inter-view predictionin a 3D video codec.

With reference to FIG. 3, View 1 represents an image acquired from thecamera located in the left with respect to View 0 while View 2represents an image acquired from the camera located in the right withrespect to the View 0.

The View 1 and View 2 perform inter-view prediction by using the View 0as a reference image, and an encoding order is such that the View 0 isencoded before the View 1 and View 2.

Since the View 0 can be encoded independently of the other views, it iscalled an independent view. On the other hand, since the View 1 and View2 are encoded by using the View 0 as a reference image, the two viewsare called dependent views. The independent view image can be encoded byusing an ordinary 2D video codec. Meanwhile, since dependent view imagesare required to perform inter-view prediction, they can be encoded byusing a 3D video codec which includes an inter-view prediction process.

Also, in order to increase encoding efficiency of the View 1 and View 2,the View 1 and View 2 can be encoded by using a depth map. For example,when a texture view and its depth map are encoded, the texture view andthe depth map can be encoded or decoded independently of each other.Similarly, when the texture view and its depth map are encoded, thetexture view and the depth map can be encoded or decoded dependent oneach other as shown in FIG. 4.

FIG. 4 is one example illustrating a procedure of encoding/decoding atexture view and a depth map in a 3D video encoder/decoder.

With reference to FIG. 4, a 3D video encoder can comprise a textureencoder which encodes a texture view and a depth encoder which encodes adepth view.

For example, the texture encoder can encode a texture view by using adepth map already encoded by the depth encoder. On the other hand, thedepth encoder can encode the depth map by using the texture view alreadyencoded by the texture encoder.

The 3D video decoder can comprise a texture decoder which decodes atexture view and a depth decoder which decodes a depth map.

For example, the texture decoder can decode a texture view by using adepth map already decoded by the depth decoder. On the other hand, thedepth decoder can decode the depth map by using the texture view alreadydecoded by the texture decoder.

FIG. 5 is one example of a prediction structure of a 3D video codec.

For the convenience of description, FIG. 5 illustrates a encodingprediction structure for encoding texture views acquired from threecameras and depth maps with respect to the texture views.

With reference to FIG. 5, the three texture views acquired from thethree cameras are denoted by T0, T1, and T2 according to the respectiveviews, and the three depth maps at the same positions of the textureviews are denoted by D0, D1, and D2 depending on the respective views.At this time, T0 and D0 are images acquired from View 0; T1 and D1, fromView 1; and T2 and D2, from View 2.

The rectangles of FIG. 5 represent images (pictures).

Each picture (picture) can be classified into Intra picture (I picture),uni-Prediction picture (P picture), and Bi-directional picture (Bpicture); and can be encoded according to the encoding type of thepicture. I picture encodes an image itself without employinginter-picture prediction; P picture performs inter-picture predictionencoding by using forward prediction from reference pictures; and Bpicture performs inter-picture prediction encoding by using forward andbackward prediction from reference images.

The arrows of FIG. 5 represent prediction direction. In other words,depending on a prediction direction, texture view and its correspondingdepth map can be encoded or decoded being dependent on each other.

A method for estimating motion of a current block from a texture viewcan be classified largely into temporal prediction and inter-viewprediction. Temporal prediction refers to a prediction method employingtemporal correlation at the same viewpoint while inter-view predictionrefers to a prediction method employing inter-view correlation betweenneighboring viewpoints. The temporal prediction and inter-viewprediction can be used interchangeably within one picture.

At this time, a current block refers to the block within the textureview for which prediction is currently performed. Motion information maydenote only a motion vector or a motion vector, reference picturenumber, uni-directional prediction, bi-directional prediction,inter-view prediction, temporal prediction, or other type of prediction.

Meanwhile, large volume 3D video contents need to be compressed in anefficient manner to reduce the amount of bit streams. To increaseencoding efficiency, inter-view correlation can be utilized, orcorrelation between a texture view and its depth map can be utilized. Todeal with the aforementioned element, more encoding algorithms areneeded than for encoding 2D images, and hardware or software complexityin implementation is increased along with increased computationalcomplexity.

FIG. 6 is a diagram illustrating an encoder of a 3D video codec.

With reference to FIG. 6, a 3D video codec 600 receives and encodesimages of different viewpoints (for example, View 0, View 1, and View2), and outputs an integrated, encoded bit stream.

At this time, images can include not only a texture view but also adepth map.

The 3D video codec can encode input images by using different encodersaccording to view ID information.

For example, since an image from View 0 needs to be encoded by anexisting 2D video codec for ensuring backward compatibility, a defaultlayer encoder 610 (View 0 encoder) can be used to encode the image fromView 0. Images from View 1 and View 2 need to be encoded by a 3D videocodec including an inter-view prediction algorithm and an algorithmutilizing correlation between a texture view and its depth map;therefore, an enhancement layer encoder 620 (View 1 or View 2 encoder)can be used to encode the images of View 1 and View 2.

Also, in the case of a depth map rather than an texture view, encodedinformation of the texture view can be utilized for encoding, theenhancement layer encoder 620 can be used to encode the depth map.Therefore, different from the case of encoding View 0 images, a morecomplicated encoder is required to encode images from View 1 and View 2.Moreover, a lot more sophisticated encoder is needed to encode a depthmap rather than for encoding a texture view in the base layer.

Meanwhile, an HEVC uses a merge motion method as one of methods forencoding motion information used for inter-prediction at the time ofvideo encoding/decoding. At this time, to increase encoding efficiencyin the enhancement layer, an enhanced merge motion method, which isobtained by modifying the merge motion method in the base layer, is usedin the enhancement layer.

FIG. 7 illustrates a method for merge motion used in a 3D HighEfficiency Video Coding (HEVC).

With reference to FIG. 7, the 3D-HEVC 700 applies a merge motionconstruction method 710 to View 0 separately from a merge motionconstruction method 720 to the other views (View 1 and View 2).

If an image containing a current Prediction Unit (PU), Prediction Block(PB), or a block of an arbitrary size is input to the 3D-HEVC 700, the3D-HEVC 700 can choose either of the merge motion construction method710 for the View 0 and the merge motion construction method 720 for theother views (View 1 and View 2), based on information about whether theinput image is a texture view or a depth map and viewpoint information(ViewID information) of the input image. And the 3D-HEVC 700, by usingthe chosen method for constructing merge motion, can output a mergemotion candidate list with respect to the current PU.

At this time, the current PU refers to a current block where predictionwithin a current image is carried out for encoding/decoding of thecurrent image.

The texture image with respect to the View 0 constructs a merge motioncandidate list by using a merge motion construction method for a baselayer to ensure backward compatibility. On the other hand, the textureview and its depth map with respect to the View 1 and the View 2construct a merge motion candidate list by using a merge motionconstruction method for the enhancement layer.

A merge motion construction method for the enhancement layer is carriedout by adding a new candidate to the merge motion construction methodfor the base layer or modifying an order of the candidate list. In otherwords, as shown in FIG. 7, the merge motion construction method for theenhancement layer (for the other views (View 1 and View 2) and thecorresponding depth maps) already includes the merge motion constructionmethod for the base layer.

Therefore, the merge motion construction method for the enhancementlayer is implemented in a more complicated manner and requires highercomputational complexity than the merge motion construction method forthe base layer. Also, in view of hardware or software implementation,since both of the merge motion construction method for the base layerand the merge motion construction method for the enhancement layer haveto be implemented, implementation complexity is increased by more thandouble.

FIG. 8 is one example of peripheral blocks used to construct a mergemotion list with respect to a current block.

A merge motion method (merge mode) refers to a method for utilizingmotion information of neighboring blocks of a current block as themotion information (for example, a motion vector, reference picturelist, reference picture index, and so on) of the current block (currentPU) and constructs a merge motion candidate list with respect to thecurrent block based on the motion information of the neighboring blocks.

As shown in FIG. 8, the neighboring blocks can be defined as the blocksA, B, C, D, and E located spatially close to the current block andco-located block H or M temporally corresponding to the current block.The co-located block refers to the block within the co-located picturecorresponding temporally to a current picture including the currentblock. If the H block within the co-located picture is available, the Hblock is determined to be a co-located block. Otherwise the M blockwithin the co-located picture is determined to be a co-located block.

To construct a merge motion candidate list, it is determined firstwhether motion information of the neighboring blocks (A, B, C, D, and E)and the co-located block (H or M) can be used as a merge motioncandidate which constitutes a merge motion candidate list of the currentblock. Next, motion information of available blocks is determined as amerge motion candidate. Then the merge motion candidate can be added tothe merge motion candidate list.

FIG. 9 is one example of a method for constructing a merge motioncandidate list implemented by hardware.

With reference to FIG. 9, an input parameter for constructing a mergemotion list used in a texture view with respect to View 0 is the same asthe input parameter for constructing a merge motion list used in atexture view and its depth map with respect to View 1 and View 2. Theonly difference is the fact that an input parameter (“additional motionF” and “additional motion G”) for constructing a merge motion list usedfor a texture view and its depth map with respect to View 1 and View 2is added.

Therefore, due to the additional motion information, those parts whichconstitute the merge motion candidate list are changed. In other words,to include the additional motion information in the merge motioncandidate list (to increase encoding efficiency), a merge motion listconstruction module for a texture view and its depth map with respect tothe View 1 and the View 2 has to be implemented anew. And this can leadto the increase of complexity of hardware implementation.

To solve the problems, the present invention proposes a method forreducing implementation complexity and computational complexity of anencoding algorithm and a video codec for the enhancement layer (in theembodiment, a texture view and its depth map with respect to the View 1and the View 2). As one example, the present invention reuses a “mergemotion candidate list construction” module for the base layer (a textureview with respect to the View 0), implementation of which has beenalready completed in the form of a hardware chip, to apply the module tothe enhancement layer (in the embodiment, a texture view and its depthmap with respect to the View 1 and the View 2), thereby reducingcomplexity of hardware implementation. According to the presentinvention, if a consumer having an encoder/decoder for the base layerused for a 2D video service (more specifically, the “merge motioncandidate list construction” module) attempts to receive a 3D videoservice, he or she will be able to easily access the 3D video serviceonly by attaching an additional module (to be specific, the “mergemotion candidate list construction” module for the enhancement layer).

In what follows, described will be a method for increasing dataprocessing throughput by reducing implementation complexity andcomputational complexity of a video codec according to the presentinvention.

[Basic Method]

FIG. 10 illustrates a 3D video codec according to one embodiment of thepresent invention.

With reference to FIG. 10, a 3D video codec 1000 receives images atdifferent viewpoints (for example, View 0, View 1, and View 2), encodesthe received images, and outputs an encoded bit stream.

At this time, the images can include not only texture views but also thecorresponding depth maps. Images can be classified into images ofindependent views which can be encoded independently of other viewpointsand images of dependent views which are encoded with reference to theimages of independent views. For example, View 0 can be an independentview, and View 1 and View 2 can be dependent views encoded withreference to the View 0.

The 3D video codec 1000 can include an encoder 1010 which is capable ofencoding a texture view and its depth map with respect to all of theviewpoints (for example, View 0, View 1, and View 2). For example, theencoder 1010 capable of encoding a texture view and its depth map withrespect to all of the viewpoints can be implemented by MPEG-1, MPEG-2,MPEG-4 Part 2 Visual, H.264/AVC, VC-1, AVS, KTA, HEVC (H.265/HEVC), andso on.

The 3D video codec 1000 can include a partial encoder 1020 to increaseencoding efficiency for a texture view and its depth map with respect toa dependent view rather than an independent view. For example, thepartial encoder 1020 can encode a texture view and its depth map withrespect to the View 1 and the View 2, or encode a depth map with respectto all of the viewpoints.

The 3D video codec 1000 can include a multiplexer 1030 which multiplexesimages encoded by the respective encoders 1010, 1020. The multiplexer1030 multiplexes a bit stream of a texture view with respect to the View0 and a bit stream of texture views and the corresponding depth mapswith respect to the View 1 and the View 2 into a single bit stream.

As described above, the 3D video codec 1000 according to one embodimentof the present invention can apply a module 1010 with backwardcompatibility, which is used to encode a texture view with respect to anindependent view (for example, View 0), to texture views and thecorresponding depth maps with respect to dependent views (for example,View 1 and View 2), thereby reducing implementation complexity. And the3D video codec 1000 according to one embodiment of the present inventioncan increase encoding efficiency by applying the partial encoder 1020 totexture views and the corresponding depth maps with respect to dependentviews (for example, View 1 and View 2).

The 3D video codec described in detail with reference to FIG. 10 can beapplied to the entire encoding/decoding process or to the individualsteps of the encoding/decoding process.

[Detailed Method]

FIG. 11 is a conceptual diagram illustrating a method for merge motionaccording to one embodiment of the present invention. The merge motionmethod illustrated in FIG. 11 can be carried out by a 3D-HEVC, where the3D-HEVC can be implemented by using the 3D video codec of FIG. 10.

A merge motion method according to one embodiment of the presentinvention derives a spatial merge motion candidate and a temporal mergemotion candidate with respect to a current PU, derives an additionalmerge motion candidate based on the information about the current PU(for example, viewpoint information of the current PU, image typeinformation of the current PU, and so on), and constructs a merge motioncandidate list with respect to the current PU based on the derived mergemotion candidates.

With reference to FIG. 11, in a merge motion method according to oneembodiment of the present invention, the input comprises current PUinformation (for current image information), information about whetherthe current PU image is a texture view or a depth map (texture/depthinformation), and viewpoint information of the current PU (ViewIDinformation); and the output is a merge motion candidate list withrespect to the current PU.

A merge motion method of the present invention carries out the “defaultmerge motion list construction” step 1110 with respect to the current PUby default, producing a “default merge motion candidate list”. As oneexample, the “default merge motion list construction” step 1110 canadopt the merge motion candidate list construction method of the HEVC.

Next, the merge motion method of the present invention can carry out an“additional merge motion list construction” step 1120 additionallyaccording to information about whether the current PU image is a textureview or a depth map (texture/depth information) and viewpointinformation of the current PU. At this time, in the “additional mergemotion list construction” step 1120, the input is the “default mergemotion candidate list” produced at the “default merge motion listconstruction” step 1110 and the output is an “extended merge motioncandidate list”. The “additional merge motion list construction” step1120 can be carried out for texture views and the corresponding depthmaps with respect to dependent views (for example, the View 1 and theView 2).

Further details about the merge motion method according to the presentinvention will be described below.

FIG. 12 is one example of a method for merge motion of FIG. 11 accordingto one embodiment of the present invention implemented by hardware.

With reference to FIG. 12, an apparatus carrying out a merge motionmethod according to one embodiment of the present invention(hereinafter, it is called a merge motion apparatus) 1200 comprises adefault merge motion list construction module 1210 and an additionalmerge motion list construction module 1220.

Input to the merge motion apparatus 1200 includes a spatial merge motioncandidate, a temporal merge motion candidate, and an additional mergemotion candidate. Output of the merge motion apparatus 1200 is a defaultmerge motion candidate list in the case of a texture view with respectto an independent viewpoint while it is an extended merge motioncandidate list in the case of a texture view and its depth map withrespect to a dependent viewpoint.

As described above, an independent view refers to a viewpoint at whichimages can be encoded independently of other viewpoints and can work asa base view. A dependent view refers to a viewpoint at which images areencoded with reference to the independent view. For the convenience ofdescription, the present invention assumes that the independent view isView 0 and the dependent view includes View 1 and View 2.

A default merge motion list construction module 1210 can construct adefault merge motion candidate list by deriving a spatial merge motioncandidate and a temporal merge motion candidate with respect to acurrent PU.

As shown in FIG. 8, a spatial merge motion candidate can be derived fromneighboring blocks (A, B, C, D, E) spatially close to the current PU.

The default merge motion list construction module 1210 determineswhether neighboring blocks (A, B, C, D, E) are available and determinesmotion information of available neighboring blocks as a spatial mergemotion candidate with respect to the current PU. At the time ofdetermining availability of neighboring blocks (A, B, C, D, E),availability of the neighboring blocks (A, B, C, D, E) can be determinedaccording to a predetermined order or an arbitrary order. For example,the availability can be determined in the order of A, B, C, D, and E.

As shown in FIG. 8, the temporal merge motion candidate can be derivedfrom a co-located block (col block) (H, M) within a co-located picture(col picture) with respect to the current PU. The col block H can be aPU block located in the lower right of a block X′ corresponding to thecurrent PU within the col picture. The col block M can be a PU blocklocated in the center of block X′ corresponding to the current PU withthe col picture.

The default merge motion list construction module 1210 determineswhether the col block (H, M) is available and determines motioninformation of available col blocks as a temporal merge motion candidatewith respect to the current PU. At this time, determining availabilityof col blocks (H, M) can be pursued in the order of H and M block orvice versa.

The additional merge motion list construction module 1220 can constructan extended merge motion candidate list by deriving an additional mergemotion candidate with respect to a current PU based on the informationabout whether the current PU image is a texture view or a depth map(Texture/Depth information) and viewpoint information about the currentPU (ViewID information).

In case the current PU image is a texture view and its depth map withrespect to a dependent view (for example, View 1 and View 2), theadditional merge motion list construction module 1220 can additionallycarry out a process for constructing a merge motion candidate list for atext view and its depth map with respect to the dependent view of thecurrent PU.

At this time, the input to the additional merge motion list constructionmodule 1220 comprises a default merge motion candidate list constructedby the default merge motion list construction module 1210 and anadditional merge motion candidate (F, G). The output of the additionalmerge motion list construction module 1220 is the extended merge motioncandidate list.

To construct a merge motion candidate list for a texture view and itsdepth map with respect to the dependent view (for example, the View 1and the View 2), a merge motion apparatus according to an embodiment ofthe present invention, as described in detail above, can reducecomplexity of hardware implementation by implementing only an additionalpart module instead of implementing a new module. In other words, thepresent invention reuses a “merge motion candidate list construction”module for the base layer (for example, a texture view with respect tothe View 0), implementation of which has been already completed in theform of a hardware chip, to apply the module to the enhancement layer(for example, a texture view and its depth map with respect to the View1 and the View 2), thereby reducing complexity of hardwareimplementation.

FIG. 13 is a conceptual diagram illustrating a method for constructing amerge motion candidate list of FIGS. 11 and 12 according to oneembodiment of the present invention. A merge motion candidate listconstruction method of FIG. 13 can be carried out in the 3D video codecof FIG. 10 or in the merge motion apparatus of FIG. 12.

With reference to FIG. 13, to construct a merge motion candidate listaccording to an embodiment of the present invention, the input comprisescurrent PU information, information about whether the current PU imageis a texture view or a depth map (texture/depth information), andviewpoint information of the current PU (ViewID information); and theoutput is a merge motion candidate list with respect to the current PU.

First, a default merge motion candidate list 1310 is constructed withrespect to the current PU. For example, the default merge motioncandidate list can adopt the merge motion candidate list constructionmethod used for the HEVC and as described above, can be constructedbased on a spatial merge motion candidate and a temporal merge motioncandidate with respect to the current PU.

Next, an extended merge motion candidate list 1320 is constructed basedon the information about whether the current PU image is a texture viewor its depth map (texture/depth information) and viewpoint informationabout the current PU image (ViewID information). At this time, theextended merge motion candidate list can be constructed with respect totexture views and the corresponding depth maps of dependent views (forexample, View 1 and View 2), and an additional merge motion candidatecan be added as described above.

If the current PU is a texture view of an independent view (for example,View 0), a default merge motion candidate list can be produced. On theother hand, if the current PU is texture views and the correspondingdepth maps of dependent views (for example, View 1 and View 2), anextended merge motion candidate list can be produced.

At this time, the number of candidates of the extended merge motioncandidate list can exceed the number of candidates of the default mergemotion candidate list.

FIG. 14 illustrates a method for constructing an extended merge motioncandidate list according to one embodiment of the present invention.

With reference to FIG. 14, an extended merge motion candidate listaccording to an embodiment of the present invention can insert anadditional merge motion candidate, which is additional motioninformation (for example, motion information F), to the first index (oran index corresponding to an arbitrary position) of the extended mergemotion candidate list.

At this time, before an additional merge motion candidate is inserted,the additional merge motion candidate (for example, motion informationF) and the first merge motion candidate of the default merge motioncandidate list (for example, motion information A) are compared witheach other. If the two candidates are not the same with each other, theadditional merge motion candidate (the motion information F) can beinserted into the first index of the extended merge motion candidatelist and vice versa. For example, at the time of comparing motioninformation of two candidates (for example, motion information F and A)with each other, if a difference between motion vectors of the twocandidates falls below a predetermined threshold, the additional mergemotion candidate (for example, motion information F) can be left notinserted into the extended merge motion candidate list and vice versa.Similarly, in case reference images of the two candidates are not thesame with each other, the additional merge motion candidate (forexample, motion information F) can be inserted into the extended mergemotion candidate list and vice versa.

FIG. 15 illustrates a method for constructing an extended merge motioncandidate list according to another embodiment of the present invention.

With reference to FIG. 15, an extended merge motion candidate listaccording to an embodiment of the present invention inserts anadditional merge motion candidate (for example, motion information F),which is additional motion information, into the first index of theextended merge motion candidate list and inserts an another additionalmerge motion candidate (for example, motion information G), which isanother additional motion information, into the third index (or an indexcorresponding to an arbitrary position) of the extended merge motioncandidate list.

At this time, before an additional merge motion candidate is inserted,the additional merge motion candidate (for example, motion information Fand G) and the original index (the first and the third index) within thedefault merge motion candidate list are compared with each other. If thetwo candidates (for example, motion information A and F, or motioninformation C and G) are not the same with each other, an additionalmerge motion candidate can be inserted into the first and the thirdindex of the extended merge motion candidate list and vice versa. Forexample, at the time of comparing motion information of two candidates(for example, motion information A and F, or motion information C and G)with each other, if a difference between motion vectors of the twocandidates falls below a predetermined threshold, an additional mergemotion candidate (for example, motion information F or G) can be leftnot inserted into the extended merge motion candidate list and viceversa. Similarly, in case reference images of the two candidates are notthe same with each other, the additional merge motion candidate (forexample, motion information F or G) can be inserted into the extendedmerge motion candidate list and vice versa.

[Additional Methods]

The method of FIGS. 10 to 13 can be applied in various ways as describedbelow.

1. As one embodiment, a default encoder (or a default module) can beapplied not only to a texture view with respect to View 0 but alsotexture images and the corresponding depth maps with respect to View 1and View 2.

2. As another embodiment, the default encoder (or the default module)can be applied only to small block units but with high complexity (forexample, 8×8 unit or arbitrary block size). At this time, if textureviews and corresponding depth maps with respect to the View 1 and theView 2 are smaller than the small block unit, the default encoder (ordefault module) is used for encoding, whereas, if they are larger thanthe small block size, the default encoder (or default module) and apartial encoder (or an extended module) can be used together forencoding. At this time, the default encoder (or default module) canperform the “default merge motion list construction” step of FIGS. 11and 13 while the partial encoder (or extended module) can perform the“additional merge motion list construction” step of FIGS. 11 and 13.

FIG. 16 is a flow diagram briefly illustrating a method for constructinga merge motion candidate list according to one embodiment of the presentinvention. The method of FIG. 16 can be carried out by an apparatusshown in FIGS. 10 and 12 or carried out after being applied to a3D-HEVC. For the convenience of description, it is assumed that themethod of FIG. 16 is carried out by a merge motion apparatus.

With respect to FIG. 16, a merge motion apparatus adds default mergemotion candidates to a merge motion candidate list for a current PUS1600.

At this time, the default merge motion candidates, as described above,can comprise a spatial merge motion candidate and a temporal mergemotion candidate with respect to the current PU and can correspond tocandidates for texture views of independent views.

The merge motion apparatus determines whether a current pictureincluding the current PU is a depth map or a dependent view S1610.

If the current picture including the current PU is a depth map or adependent view, the merge motion apparatus adds an extended merge motioncandidate to the merge motion candidate list S1620.

At this time, the extended merge motion candidates may correspond tocandidates for a depth map or an image of a dependent view (texture viewand its depth map).

Tables 1 to 6 show the specifications of Joint Collaborative Team on 3DVideo Coding Extensions of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG11 (JCT-3V) under development jointly by the Moving Picture ExpertsGroup (MPEG) and Video Coding Experts Group (VCEG).

Table 1 illustrates one example of an input and output of a processincluding a procedure of adding a default extended merge motioncandidate, and Table 2 is one example of an input and output of aprocess including a procedure of adding an extended merge motioncandidate according to an embodiment of the present invention.

TABLE 1 H.8.5.3.2 Derivation process for motion vector components andreference indices Inputs to this process are:   a luma location ( xCb,yCb ) of the top-left sample of the current luma coding block relativeto the   top-left luma sample of the current picture,   a luma location( xBl, yBl ) of the top-left sample of the current luma prediction blockrelative to the   top-left sample of the current luma coding block,   avariable nCbS specifying the size of the current luma coding block,  two variables nPbW and nPbH specifying the width and the height of theluma prediction block,   a variable partIdx specifying the index of thecurrent prediction unit within the current coding unit. Outputs of thisprocess are:   the luma motion vectors mvL0 and mvL1,   the chromamotion vectors mvCL0 and mvCL1,   the reference indices refIdxL0 andrefIdxL1,   the prediction list utilization flags predFlagL0 andpredFlagL1.   the flag subPbMotionFlag, specifiying, whether the motiondata of the current PU has sub prediction   block size motion accuracy.Let ( xPb, yPb ) specify the top-left sample location of the currentluma prediction block relative to the top-left luma sample of thecurrent picture where xPb = xCb + xBl and yPb = yCb + yBl. Let thevariable currPic and ListX be the current picture and RefPicListX, withX being 0 or 1, of the current picture, respectively. The functionLongTermRefPic( aPic, aPb, refIdx, LX ), with X being 0 or 1, is definedas follows:   If the picture with index refIdx from reference picturelist LX of the slice containing prediction block   aPb in the pictureaPic was marked as “used for long term reference” at the time when aPicwas the   current picture, LongTermRefPic( aPic, aPb, refIdx, LX ) isequal to 1.   Otherwise, LongTermRefPic( aPic, aPb, refIdx, LX ) isequal to 0. The variables vspModeFlag, ivpMvFlagL0, ivpMvFlagL1 andsubPbMotionFlag are set equal to 0. For the derivation of the variablesmvL0 and mvL1, refIdxL0 and refIdxL1, as well as predFlagL0 andpredFlagL1, the following applies:   If merge_flag[ xPb ][ yPb ] isequal to 1, the derivation process for luma motion vectors for merge  mode as specified in subclause H.8.5.3.2.1 is invoked with the lumalocation ( xCb, yCb ), the luma   location ( xPb, yPb ), the variablesnCbS, nPbW, nPbH, and the partition index partIdx as inputs, and   theoutput being the luma motion vectors mvL0, mvL1, the reference indicesrefIdxL0, refIdxL1, and   the prediction list utilization flagspredFlagL0 and predFlagL1, the disparity vector availability flags  ivpMvFlagL0 and ivpMvFlagL1, the flag vspModeFlag, and the flagsubPbMotionFlag.

TABLE 2 H.8.5.3.2 Derivation process for motion vector components andreference indices Inputs to this process are:   a luma location ( xCb,yCb ) of the top-left sample of the current luma coding block relativeto the   top-left luma sample of the current picture,   a luma location( xBl, yBl ) of the top-left sample of the current luma prediction blockrelative to the   top-left sample of the current luma coding block,   avariable nCbS specifying the size of the current luma coding block,  two variables nPbW and nPbH specifying the width and the height of theluma prediction block,   a variable partIdx specifying the index of thecurrent prediction unit within the current coding unit. Outputs of thisprocess are:   the luma motion vectors mvL0 and mvL1,   the chromamotion vectors mvCL0 and mvCL1,   the reference indices refIdxL0 andrefIdxL1,   the prediction list utilization flags predFlagL0 andpredFlagL1.   the flag subPbMotionFlag, specifiying, whether the motiondata of the current PU has sub prediction   block size motion accuracy.Let ( xPb, yPb ) specify the top-left sample location of the currentluma prediction block relative to the top-left luma sample of thecurrent picture where xPb = xCb + xBl and yPb = yCb + yBl. Let thevariable currPic and ListX be the current picture and RefPicListX, withX being 0 or 1, of the current picture, respectively. The functionLongTermRefPic( aPic, aPb, refIdx, LX), with X being 0 or 1, is definedas follows:   If the picture with index refIdx from reference picturelist LX of the slice containing prediction block   aPb in the pictureaPic was marked as “used for long tem reference” at the time when aPicwas the   current picture, LongTermRefPic( aPic, aPb, refIdx, LX ) isequal to 1.   Otherwise, LongTermRefPic( aPic, aPb, refIdx, LX ) isequal to 0. The variables vspModeFlag, ivpMvFlagL0, ivpMvFlagL1 andsubPbMotionFlag are set equal to 0. For the derivation of the variablesmvL0 and mvL1, refIdxL0 and refIdxL1, as well as predFlagL0 andpredFlagL1, the following applies:   If merge_flag[ xPb ][ yPb ] isequal to 1, the following applies:     The derivation process for baseluma motion vectors for merge mode as specified in subclause    H.8.5.3.2.17 is invoked with the luma location ( xCb, yCb ), theluma location ( xPb, yPb ), the     variables nCbS, nPbW, nPbH, and thepartition index partIdx as inputs, and the output being the     lumamotion vectors mvL0, mvL1, the reference indices refIdxL0, refIdxL1, andthe prediction     list utilization flags predFlagL0 and predFlagL1, theadditional output parameters being the     merge candidate listsmergeCandList, the availability flags availableFlagN of the neighbouring    prediction units (with N being replaced by A0, A1, B0, B1 or B2).  If DepthFlag is equal to 1 or ViewIdx is not equal to 0, thederivation process for luma motion   vectors for merge mode as specifiedin subclause H.8.5.3.2.1 is invoked with the luma location   ( xCb, yCb), the luma location ( xPb, yPb ), the variables nCbS, nPbW, nPbH, andthe partition   index partIdx, the merge candidate lists mergeCandList,the availability flags availableFlagN of the   neighbouring predictionunits (with N being replaced by A₀, A₁, B₀, B₁ or B₂) as inputs, and the  output being the luma motion vectors mvL0, mvL1, the reference indicesrefIdxL0, refIdxL1, and the   prediction list utilization flagspredFlagL0 and predFlagL1, the disparity vector availability flags  ivpMvFlagL0 and ivpMvFlagL1, the flag vspModeFlag, and the flagsubPbMotionFlag.

The procedure of adding extended merge motion candidates shown in Table2 according to an embodiment of the present invention uses as additionalinputs a merge motion candidate list (megCandList) and a flag(availableFlagN) indicating whether a default merge motion candidate hasbeen added.

In Table 2, N can be replaced with A0, A1, B0, B1, and B2 whichrepresent candidates at left, above, above-right, bottom-left, andabove-left position, respectively. In the merge motion candidate list(megCandList) which has received the inputs, default merge motioncandidates are stored according to the order of predetermined prioritiesby an existing method. As one example, the candidates can be stored inthe following order: left candidate, above candidate, above-rightcandidate, bottom-left candidate, above-left candidate, temporal(prediction) candidate, combined bi-predictive candidate, andzero-motion candidate. The output is a merge motion candidate list forwhich an additional task with respect to extended merge motioncandidates has been completed.

Table 3 illustrates an existing procedure of adding an extended mergemotion candidate, and Table 4 illustrates a procedure of adding anextended merge motion candidate according to an embodiment of thepresent invention.

Since Tables 4 describes a process dealing with a list to which defaultmerge motion candidates have already been added, procedures for extendedmerge motion candidates are only processed. Therefore, in the existing3D-HEVC, it is possible to omit the process for merge motion candidateswhich have been used in the HEVC so that the process is not implementedrepeatedly.

TABLE 3 H.8.5.3.2.3 Derivation process for luma motion vectors for mergemode 1. The derivation process for merging candidates from neighbouringprediction unit partitions in subclause 8.5.3.2.2 is invoked with theluma coding block location ( xCb, yCb ), the coding block size nCbS, theluma prediction block location ( xPb, yPb ), the luma prediction blockwidth nPbW, the luma prediction block height nPbH, and the partitionindex partIdx as inputs, and the output being the availability flagsavailableFlagA₀, availableFlagA₁, availableFlagB₀, availableFlagB₁,andavailable FlagB₂, the reference indices refIdxLXA₀, refIdxLXA₁,refIdxLXB₀, refIdxLXB₁, and refIdxLXB₂, the prediction list utilizationflags predFlagLXA₀, predFlagLXA₁, predFlagLXB₀, predFlagLXB₁, andpredFlagLXB₂, and the motion vectors mvLXA₀, mvLXA₁, mvLXB₀, mvLXB₁, andmvLXB₂, with X being 0 or 1. 2. The reference indices for the temporalmerging candidate, refIdxLXCol, with X being 0 or 1, are set equal to 0.3. The derivation process for temporal luma motion vector prediction insubclause H.8.5.3.2.7 is invoked with the luma location ( xPb, yPb ),the luma prediction block width nPbW, the luma prediction block heightnPbH, and the variable refIdxL0Col as inputs, and the output being theavailability flag availableFlagL0Col and the temporal motion vectormvL0Col.The variables availableFlagCol, predFlagL0Col and predFlagL1Colare derived as follows: availableFlagCol = availableFlagL0ColpredFlagL0Col = availableFlagL0Col predFlagL1Col = 0 4. When slice_typeis equal to B, the derivation process for temporal luma motion vectorprediction in subclause H.8.5.3.2.7 is invoked with the luma location (xPb, yPb ), the luma prediction block width nPbW, the luma predictionblock height nPbH, and the variable refIdxL1Col as inputs, and theoutput being the availability flag availableFlagL1Col and the temporalmotion vector mvL1Col. The variables availableFlagCol and predFlagL1Colare derived as follows: availableFlagCol = availableFlagL0Col ||availableFlagL1Col predFlagL1Col = availableFlagL1Col 5. Depending oniv_mv_pred_flag[ nuh_layer_id ], the following applies. Ifiv_mv_pred_flag[ nuh_layer_id ] is equal to 0, the flagsavailableFlagIvMC, availableIvMCShift and availableFlagIvDC are setequal to 0. Otherwise (iv_mv_pred_flag[ nuh_layer_id ] is equal to 1),the derivation process for the inter-view merge candidates as specifiedin subclause H.8.5.3.2.10 is invoked with the luma location ( xPb, yPb), the variables nPbW and nPbH, as the inputs and the output is assignedto the availability flags availableFlagIvMC, availableIvMCShift andavailableFlagIvDC, the reference indices refIdxLXIvMC, refIdxLXIvMCShiftand refIdxLXIvDC, the prediction list utilization flags predFlagLXIvMC,predFlagLXivMCShift and predFlagLXIvDC, and the motion vectors mvLXIvMC,mvLXIvMCShift and mvLXIvDC (with X being 0 or 1, respectively).. 6.Depending on view_synthesis_pred_flag[ nuh_layer_id ], the followingapplies. If view_synthesis_pred_flag[ nuh_layer_id ] is equal to 0, theflag availableFlagVSP is set equal to 0. Otherwise(view_synthesis_pred_flag[ nuh_layer_id ] is equal to 1), the derivationprocess for a view synthesis prediction merge candidate as specified insubclause H.8.5.3.2.13 is invoked with the luma locations ( xCb, yCb )as input and the outputs are the availability flag availableFlagVSP, thereference indices refIdxL0VSP and refIdxL1VSP, the prediction listutilization flags predFlagL0VSP and predFlagL1VSP, and the motionvectors mvL0VSP and mvL1VSP. 7. Depending on mpi_flag[ nuh_layer_id ],the following applies. If mpi_flag[ nuh_layer_id ] is equal to 0, thevariable availableFlagT is set equal to 0. Otherwise (mpi_flag[nuh_layer_id ] is equal to 1), the derivation process for the texturemerging candidate as specified in subclause H.8.5.3.2.14 is invoked withthe luma location ( xPb, yPb ), the variables nPbW and nPbH as theinputs and the outputs are the flag availableFlagT, the predictionutilization flags predFlagL0T and predFlagL1T, the reference indicesrefIdxL0T and refIdxL1T, and the motion vectors mvL0T and mvL1T. 8. Themerge candidate lists mergeCandList and mergeCandlsVspFlag areconstructed as specified by the following ordered steps: a. The variablenumMergeCand is set equal to 0. b. When availableFlagT is equal to 1,the entry mergeCandList[ numMergeCand ] is set equal to T. the entrymergeCandIsVspFlag[ numMergeCand ] is set equal to 0 and the variablenumMergeCand is increased by 1. c. When availableFlagIvMC is equal to 1,When the following condition is true, availableFlagT == 0, or one ormore of the following conditions are true: availableFlagT == 1 &&predFlagLXT != predFlagLXIcMv (with X being replaced by 0 and 1),availableFlagT == 1 && mvLXT != mvLXIcMv (with X being replaced by 0 and1), availableFlagT == 1 && refIdxLXT != refIdxLXIcMv (with X beingreplaced by 0 and 1),  the entry mergeCandList[ numMergeCand ] is setequal to IvMC, the entry mergeCandIsVspFlag[ numMergeCand ] is set equalto 0 and the variable numMergeCand is increased by 1. d. WhenavailableFlagA₁ is equal to 1, the following applies, with N beingreplaced by ( DepthFlag ? T : IvMC ): When the following condition istrue, availableFlagN == 0, or one or more of the following conditionsare true: availableFlagN == 1 && predFlagLXN != predFlagLXA_(1,) (with Xbeing replaced by 0 and 1), availableFlagN == 1 && mvLXN != mvLXA₁ (withX being replaced by 0 and 1), availableFlagN == 1 && refIdxLXN !=refIdxLXA₁ (with X being replaced by 0 and 1), the entry mergeCandList[numMergeCand ] is set equal to A₁, the entry merge CandIsVspFlag[numMergeCand ] is set equal to VspModeFlag[ xPb − 1 ][ yPb + nPbH − 1 ]and the variable numMergeCand is increased by 1. e. When availableFlagB₁is equal to 1, the following applies, with N being replaced by (DepthFlag ? T : IvMC ): When the following condition is true,availableFlagN == 0, or one or more of the following conditions is true:availableFlagN == 1 && predFlagLXN != predFlagLXB₁, (with X beingreplaced by 0 and 1), availableFlagN == 1 && mvLXN != mvLXB₁ (with Xbeing replaced by 0 and 1), availableFlagN == 1 && refIdxLXN !=refIdxLXB₁ (with X being replaced by 0 and 1), the entry mergeCandList[numMergeCand ] is set equal to B₁, the entry mergeCandIsVspFlag[numMergeCand ] is set equal to 0 and the variable numMergeCand isincreased by 1. f. When availableFlagB₀ is equal to 1, the entrymergeCandList[ numMergeCand ] is set equal to B₀, the entrymergeCandIsVspFlag[ numMergeCand ] is set equal to 0 and the variablenumMergeCand is increased by 1. g. When availableFlagIvDC is equal to 1,and one or more of the following conditions is true, availableFlagA1 ==0, predFlagLXA1 != predFlagLXIvDC, (with X being replaced by 0 and 1),mvLXA₁ != myLXIvDC (with X being replaced by 0 and 1), refIdxLXA₁ !=refIdxLXIvDC (with X being replaced by 0 and 1), and one or more of thefollowing conditions is true, availableFlagB₁ == 0, predFlagLXB₁ !=predFlagLXIvDC, (with X being replaced by 0 and 1), mvLXB₁ != mvLXIvDC(with X being replaced by 0 and 1), refIdxLXB₁ != refIdxLXIvDC (with Xbeing replaced by 0 and 1), the entry mergeCandList[ numMergeCand ] isset equal to IvDC, the entry mergeCandIsVspFlag[ numMergeCand ] is setequal to 0 and the variable numMergeCand is increased by 1. h. WhenavailableFlagVSP is equal to 1, ic_flag is equal to 0 andiv_res_pred_weight_idx is equal to 0, the entry mergeCandList[numMergeCand ] is set equal to VSP, the entry mergeCandIsVspFlag[numMergeCand ] is set equal 1 and the variable numMergeCand is increasedby 1. i. When availableFlagA₀ is equal to 1 and numMergeCand is lessthan 5 + NumExtraMergeCand, the entry mergeCandList[ numMergeCand ] isset equal to A₀, the entry mergeCandIsVspFlag[ numMergeCand ] is setequal to VspModeFlag[ xPb − 1 ][ yPb + nPbH ] and the variablenumMergeCand is increased by 1. j. When availableFlagB₂ is equal to 1and numMergeCand is less than 4 + NumExtraMergeCand, the entrymergeCandList[ numMergeCand ] is set equal to B₂, the entrymergeCandIsVspFlag[ numMergeCand ] is set equal to 0 and the variablenumMergeCand is increased by 1. k. When availableFlagIvMCShift is equalto 1 and numMergeCand is less than 5 + NumExtraMergeCand, and one ormore of the following conditions are true, availableFlagIvMC == 0,predFlagLXMC != predFlagLXMCShift (with X being replaced by 0 and 1),mvLXMC != mvLXIvMCShift (with X being replaced by 0 and 1), refIdxLXMC!= refIdxLXMCShift (with X being replaced by 0 and 1), the entrymergeCandList[ numMergeCand ] is set equal to IvMCShift, the entrymergeCandIsVspFlag[ numMergeCand ] is set equal to 0 and the variablenumMergeCand is increased by 1. l. A variable availableFlagIvDCShift isset to 0 and when all of the following conditions are true DepthFlag isequal to 0, availableFlagIvMCShift is equal to 0, numMergeCand is lessthan 5 + NumExtraMergeCand, the derivation process for the shifteddisparity merging candidate as specified in subclause H.8.5.3.2.15 isinvoked with the availability flags availableFlagN, the referenceindices refIdxL0N and refIdxL1N, the prediction list utilization flagspredFlagL0N and predFlagL1N, the motion vectors mvL0N and mvL1N, ofevery candidate N being in mergeCandList, mergeCandList,mergeCandIsVspFlag, and numMergeCand as the inputs and the outputs arethe flag availableFlagIvDCShift, the prediction utilization flagspredFlagL0IvDCShift and predFlagL1IvDCShift, the reference indicesrefIdxL0IvDCShift and refIdxL1IvDCShift, and the motion vectorsmvL0IvDCShift and mvL1IvDCShift. When availableFlagIvDCShift is equal to1, the entry mergeCandList[ numMergeCand ] is set equal to IvDCShift,the entry mergeCandIsVspFlag[ numMergeCand ] is set equal to 0 and thevariable numMergeCand is increased by 1. m. When availableFlagCol isequal to 1 and numMergeCand is less than 5 + NumExtraMergeCand, theentry mergeCandList[ numMergeCand ] is set equal to Col, the entrymergeCandIsVspFlag[ numMergeCand ] is set equal to 0 and the variablenumMergeCand is increased by 1. 9. The variable numOrigMergeCand is setequal to numMergeCand. 10. When slice_type is equal to B, the derivationprocess for combined bi-predictive merging candidates specified insubclause H.8.5.3.2.3 invoked with mergeCandList, mergeCandIsVspFlag,the reference indices refIdxL0N and refIdxL1N, the prediction listutilization flags predFlagL0N and predFlagL1N, the motion vectors mvL0Nand mvL1N of every candidate N in mergeCandList, numCurrMergeCand, andnumOrigMergeCand as inputs, and the output is assigned to mergeCandList,numCurrMergeCand, the reference indices refIdxL0combCand_(k) andrefIdxL1combCand_(k), the prediction list utilization flagspredFlagL0combCand_(k) and predFlagL1combCand_(k), and the motionvectors mvL0combCand_(k) and mvL1combCand_(k) of every new candidatecombCand_(k) being added into mergeCandList. The number of candidatesbeing added, numCombMergeCand, is set equal to ( numCurrMergeCand −numOrigMergeCand ). When numCombMergeCand is greater than 0, k rangesfrom 0 to numCombMergeCand − 1, inclusive, and mergeCandIsVspFlag[numOrigMergeCand + k ] is set equal to 0. 11. The derivation process forzero motion vector merging candidates specified in subclause 8.5.3.2.4is invoked with the mergeCandList, the reference indices refIdxL0N andrefIdxL1N, the prediction list utilization flags predFlagL0N andpredFlagL1N, the motion vectors mvL0N and mvL1N of every candidate N inmergeCandList, and numCurrMergeCand as inputs, and the output isassigned to mergeCandList, numCurrMergeCand, the reference indicesrefIdxL0zeroCand_(m) and refIdxL1zeroCand_(m), the prediction listutilization flags predFlagL0zeroCand_(m) and predFlagL1zeroCand_(m), andthe motion vectors mvL0zeroCand_(m) and mvL1zeroCand_(m) of every newcandidate zeroCand_(m) being added into mergeCandList. The number ofcandidates being added, numZeroMergeCand, is set equal to (numCurrMergeCand − numOrigMergeCand − numCombMergeCand ). WhennumZeroMergeCand is greater than 0, m ranges from 0 to numZeroMergeCand− 1, inclusive, and mergeCandIsVspFlag[ numOrigMergeCand +numCombMergeCand + m ] is set equal to 0.

TABLE 4 H.8.5.3.2.3 Derivation process for luma motion vectors for mergemode 1. Depending on iv_mv_pred_flag[ nuh_layer_id ], the followingapplies. If iv_mv_pred_flag[ nuh_layer_id ] is equal to 0, the flagsavailableFlagIvMC, availableIvMCShift and availableFlagIvDC are setequal to 0. Otherwise (iv_mv_pred_flag[ nuh_layer_id ] is equal to 1),the derivation process for the inter-view merge candidates as specifiedin subclause H.8.5.3.2.10 is invoked with the luma location ( xPb, yPb), the variables nPbW and nPbH, as the inputs and the output is assignedto the availability flags availableFlagIvMC, availableIvMCShift andavailableFlagIvDC, the reference indices refIdxLXIvMC, refIdxLXIvMCShiftand refIdxLXIvDC, the prediction list utilization flags predFlagLXIvMC,predFlagLXivMCShift and predFlagLXIvDC, and the motion vectors mvLXIvMC,mvLXIvMCShift and mvLXIvDC (with X being 0 or 1, respectively).. 2.Depending on view_synthesis_pred_flag[ nuh_layer_id ], the followingapplies. If view_synthesis_pred_flag[ nuh_layer_id ] is equal to 0, theflag availableFlagVSP is set equal to 0. Otherwise(view_synthesis_pred_flag[ nuh_layer_id ] is equal to 1), the derivationprocess for a view synthesis prediction merge candidate as specified insubclause H.8.5.3.2.13 is invoked with the luma locations ( xCb, yCb )as input and the outputs are the availability flag availableFlagVSP, thereference indices refIdxL0VSP and refIdxL1VSP, the prediction listutilization flags predFlagL0VSP and predFlagL1VSP, and the motionvectors mvL0VSP and mvL1VSP. 3. Depending on mpi_flag[ nuh_layer_id ],the following applies. If mpi_flag[ nuh_layer_id ] is equal to 0, thevariable availableFlagT is set equal to 0. Otherwise (mpi_flag[nuh_layer_id ] is equal to 1), the derivation process for the texturemerging candidate as specified in subclause H.8.5.3.2.14 is invoked withthe luma location ( xPb, yPb ), the variables nPbW and nPbH as theinputs and the outputs are the flag availableFlagT, the predictionutilization flags predFlagL0T and predFlagL1T, the reference indicesrefIdxL0T and refIdxL1T, and the motion vectors mvL0T and mvL1T. 4. Themerge candidate lists mergeCandList and mergeCandIsVspFlag areconstructed as specified by the following ordered steps: a. Thevariables numMergeCand,,numA1B1B0, and numA0B2 are set equal to 0. WhenavailableFlagA₁ is equal to 1, the entry mergeCandIsVspFlag| numA1B1B0 |is set equal to VspModeFlag[ xPb − 1 ][ yPb + nPbH − 1 ] and variablenumA1B1B0 is increased by 1. When availableFlagB₁ is equal to 1, theentry mergeCandIsVspFlag[ numA1B1B0 ] is set equal to VspModeFlag[ xPb +nPbW − 1 ][ yPb − 1 ] and the variable numA1B1B0 is increased by 1. d.When availableFlagB₀ is equal to 1, the entry mergeCandIsVspFlag[numA1B1B0 ] is set equal to VspModeFlag[ xPb + nPbW ][ yPb − 1 ] and thevariable numA1B1B0 is increased by 1. e. When availableFlagA₀ is equalto 1, the entry mergeCandIsVspFlag[ numA1B1B0 ] is set equal toVspModeFlag[ xPb − 1 ][ yPb + nPbH ] and the variable numA0B2 isincreased by 1. f. When availableFlagB₂ is equal to 1, the entrymergeCandIsVspFlag[ numA1B1B0 + numA0B2 ] is set equal to VspModeFlag[xPb − 1 ][ yPb − 1 ] and the variable numA0B2 is increased by 1. g. WhenavailableFlagT is equal to 1, the following applies: The followingapplies for N being replaced by A1 and B1: The variable pruneFlagN isset equal to 0. When all of the following conditions are true,availableFlagN == 1, predFlagLXN == predFlagLXT, (with X being replacedby 0 and 1), mvLXN == mvLXT (with X being replaced by 0 and 1),refIdxLXN == refIdxLXT (with X being replaced by 0 and 1), pruneFlagN isset equal to 1. The variables mergeCandList, MergeCandIsVspFlag,numMergCand and numA1B1B0 are modified as specified in the following:Depending on pruneA1Flag and pruneB1Flag, the following applies: IfpruneFlagA1 is equal to 0 and pruneFlagB1 is equal to 0, the followingapplies for k in the range of MaxNumMergeCand − 1 to 1, inclusive,mergeCandList[ k ] = mergeCandList[ k − 1 ] mergeCandIsVspFlag[ k ] =mergeCandIsVspFlag[ k − 1 ] Otherwise, the following applies: numA1B1B0= numA1B1B0 − 1 When availableFlagA1 + availableFlagB1 is greater than 1and pruneFlagA1 is equal to 0, the following applies: mergeCandList[ 1 ]= mergeCandList[ 0 ] mergeCandIsVspFlag[ 1 ] = mergeCandIsVspFlag[ 0 ]The entry mergeCandList[ numMergeCand ] is set equal to T, the entrymergeCandIsVspFlag[ numMergeCand ] is set equal to 0. The variablenumMergeCand is increased by 1. h. When availableFlagIvMC is equal to1,the following applies: The variable pruneFlagA1, pruneFlagB1,pruneFlagT, addIvMC is set equal to 0. If DepthFlag is equal to 0, thefollowing applies for N being replaced by A1, B1: When all of thefollowing conditions are true, availableFlagNe followin predFlagLXNagNefollowing conditions are true,1, B1:pplies:Flag[ numM mvLXNlagLXNagNefollowing conditions are true,1, B1:ppli refIdxLXNXNagNe followingconditions are true,1, B1:pplies:Flag[ pruneFlagN is set equal to 1.Otherwise, if DepthFlag is equal to 1, following applies: When all ofthe following conditions is true, availableFlagT =following conditionsis true, laced by 0 and 1),d 1),1B1B0 are modified as sp availableFlagT=following conditions is true, laced by 0 and 1),d 1),1B1B0 are moavailableFlagT =following conditions is true,dxLXIvMC (with X beingreplaced by 0 and 1), pruneFlagT is set equal to 1. The variablesmergeCandList, MergeCandIsVspFlag, numMergCand and numA1B1B0 aremodified as specified in the following: Depending on pruneA1Flag andpruneB1Flag, and pruneFlagT, the following applies: If pruneFlagA1 isequal to 0 and pruneFlagB1 is equal to 0, and pruneFlagT is equal to 0,the following applies for k in the range of MaxNumMergeCand e 1 tonumMergeCand + 1, inclusive, addIvMC = 1 mergeCandList[and + 1,inclusive,pr k − 1 ] mergeCandIsVspFlag[ 1, inclusive,pruneFlagB1 isequal Otherwise, if DepthFlag is equal to 0 and one of the followingconditions is true, pruneFlagA1 == 1, pruneFlagB1 == 1, the followingapplies: numA1B1B0 = numA1B1B0 g i addIvMC = 1 When availableFlagA10 gis equal to 0 and one of the following  conditions is true, ismergeCandList[ 1 ] is set equal to mergeCandList[ 0 ],mergeCandIsVspFlag[ 1 ] is set equal to mergeCandIsVspFlag[ 0 ]. IfaddlvMC is equal to 1, the following applies: The entry mergeCandList[numMergeCand ] is set equal to IvMC, the entry mergeCandIsVspFlag[numMergeCand ] is set equal to 0. The variable numMergeCand is increasedby 1. The variable numMergeCand is set equal to numMergeCand +numA1B1B0. j. When availableFlagIvDC is equal to 1, and one or more ofthe following conditions is true, availableFlagA1 == 0, predFlagLXA1 !=predFlagLXIvDC (with X being replaced by 0 and 1), mvLXA₁ != mvLXIvDC(with X being replaced by 0 and 1), refIdxLXA₁ != refIdxLXIvDC (with Xbeing replaced by 0 and 1), and one or more of the following conditionsis true, availableFlagB₁ == 0, predFlagLXB₁ != predFlagLXIvDC (with Xbeing replaced by 0 and 1), mvLXB₁ != mvLXIvDC (with X being replaced by0 and 1), refIdxLXB₁ != refIdxLXIvDC (with X being replaced by 0 and 1),k ranges from MaxNumMergeCand − 1 to numMergeCand + 1, inclusive, andmergeCandList[ k ] is set equal to mergeCandList[ k − 1 ],mergeCandIsVspFlag[ k ] is set equal to mergeCandIsVspFlag[ k − 1 ], theentry mergeCandList[ numMergeCand ] is set equal to IvDC, the entrymergeCandIsVspFlag[ numMergeCand ] is set equal to 0 and the variablenumMergeCand is increased by 1. k. When availableFlagVSP is equal to 1,ic_flag is equal to 0 and iv_res_pred_weight_idx is equal to 0 andnumMergeCand is less than 5 + NumExtraMergeCand, k ranges fromMaxNumMergeCand − 1 to numMergeCand + 1, inclusive, and mergeCandList[ k] is set equal to mergeCandList[ k − 1 ], mergeCandIsVspFlag[ k ] is setequal to mergeCandIsVspFlag[ k − 1 ], the entry mergeCandList[numMergeCand ] is set equal to VSP, the entry mergeCandIsVspFlag[numMergeCand ] is set equal 1 and the variable numMergeCand is increasedby 1. l. The variable numMergeCand is set equal to numMergeCand +numA0B2. m. When availableFlagIvMCShift is equal to 1 and numMergeCandis less than 5 + NumExtraMergeCand, and one or more of the followingconditions are true, availableFlagIvMC == 0, predFlagLXMC !=predFlagLXMCShift (with X being replaced by 0 and 1), mvLXMC !=mvLXIvMCShift (with X being replaced by 0 and 1), refIdxLXMC !=refIdxLXMCShift (with X being replaced by 0 and 1), k ranges fromMaxNumMergeCand − 1 to numMergeCand + 1, inclusive, and mergeCandList[ k] is set equal to mergeCandList[ k − 1 ], mergeCandIsVspFlag[ k ] is setequal to mergeCandIsVspFlag[ k − 1 ], the entry mergeCandList[numMergeCand ] is set equal to IvMCShift, the entry mergeCandIsVspFlag[numMergeCand ] is set equal to 0. n. A variable availableFlagIvDCShiftis set to 0 and when all of the following conditions are true DepthFlagis equal to 0, availableFlagIvMCShift is equal to 0, numMergeCand isless than 5 + NumExtraMergeCand, the derivation process for the shifteddisparity merging candidate as specified in subclause H.8.5.3.2.15 isinvoked with the availability flags availableFlagN, the referenceindices refIdxL0N and refIdxL1N, the prediction list utilization flagspredFlagL0N and predFlagL1N, the motion vectors mvL0N and mvL1N, ofevery candidate N being in mergeCandList, mergeCandList,mergeCandIsVspFlag, and numMergeCand as the inputs and the outputs arethe flag availableFlagIvDCShift, the prediction utilization flagspredFlagL0IvDCShift and predFlagL1IvDCShift, the reference indicesrefIdxL0IvDCShift and refIdxL1IvDCShift, and the motion vectorsmvL0IvDCShift and mvL1IvDCShift. When availableFlagIvDCShift is equal to1, k ranges from MaxNumMergeCand − 1 to numMergeCand + 1, inclusive, andmergeCandList[ k ] is set equal to mergeCandList[ k − 1 ],mergeCandIsVspFlag[ k ] is set equal to mergeCandIsVspFlag[ k − 1 ], theentry mergeCandList[ numMergeCand ] is set equal to IvDCShift, the entrymergeCandIsVspFlag[ numMergeCand ] is set equal to 0 and the variablenumMergeCand is increased by 1. H.8.5.3.2.17 Derivation process for baseluma motion vectors for merge mode The specifications in subclause8.5.3.2.1 apply, with the following changes: The following paragraph“When slice_type is equal to B, the derivation process for combinedbi-predictive merging candidates” is replaced by “When slice_type isequal to B and numMergeCand is less than 5, the derivation process forcombined bi-predictive merging candidates” “temporal luma motion vectorprediction in subclause 8.5.3.2.7 is invoked” is replaced by “temporalluma motion vector prediction in subclause H.8.5.2.3.7 is invoked”

In a procedure of adding an extended merge motion candidate of Table 4according to an embodiment of the present invention, at the time ofderiving a combined bi-predictive candidate, instead of using anexisting method for using extended merge motion candidates additionally,the present invention uses a derivation method based on combining onlythe default merge motion candidates used in the HEVC standard, therebyobtaining almost the same encoding efficiency while reducingcomputational complexity of the existing method.

The procedure of adding an extended merge motion candidate of Table 4according to an embodiment of the present invention will be describedmore specifically with reference to FIGS. 17a to 17 f.

FIGS. 17a to 17f are flow diagrams illustrating a method for addingextended merge motion candidates to a merge motion candidate listaccording to one embodiment of the present invention.

The method of FIGS. 17a to 17f is based on the process of addingextended merge motion candidates of Table 4. The method of FIG. 17a to17f can be carried out by an apparatus of FIGS. 10 and 12, or can becarried out being applied to the 3D-HEVC.

1. The flag iv_mv_pred_flag[nuh_layer_id] indicates whether a current PUis able to perform inter-view prediction. If the flagiv_mv_pred_flag[nuh_layer_id] is 1, availability of an Inter-view MergeCandidate (IvMC), Inter-view Disparity merge Candidate (IvDC), andshifted Inter-view Merge Candidate (IvMShift); the candidates are storedin the respective flags, availableFlagIvMC, availableIvMCShift, andavailableFlagIvDC; and motion information of available candidates isderived.

2. The flag view_synthesis_pred_flag[nuh_layer_id] indicates whether acurrent PU is able to perform view synthesis prediction. If the flagview_synthesis_pred_flag[nuh_layer_id] is 1, availability of aninter-view synthesis merge candidate is stored in the flagavailableFlagVSP, and motion information is derived if the candidate isavailable.

3. The flag mpi_flag[nuh_layer_id] indicates that a current PU is adepth map and whether motion can be predicted from a texture block. Ifthe flag mpi_flag[nuh_layer_id] is 1, availability of a texture mergecandidate is stored in the flag availableFlagT, and motion informationis derived if the candidate is available.

4. A merge motion candidate list mergeCandList comprising only defaultmerge motion candidates and inter-view prediction flagsmergeCandlsVspFlag for the respective candidates are reconstructedaccording to the procedure below.

a. numMergeCand represents a total number of merge motion candidates;numA1B1B0 represents the number of candidates in the left, above, andabove-right position among default merge motion candidates; and numA0B2represents the number of candidates in the bottom-left and above-leftposition among the default merge motion candidates. numMergeCand,numA1B1B0, and numA0B2 are initialized to 0.

b. It is determined whether the left candidate A1 is available. If theleft candidate is available, numA1B1B0 is increased by 1. Also, whetherthe left candidate has used View Synthesis Prediction (hereinafter, VSP)is stored in a flag.

c. It is determined whether the top candidate B1 is available. If thetop candidate is available, numA1B1B0 is increased by 1. Also, whetherthe top candidate has used VSP is stored in a flag.

d. It is determined whether the above-right candidate B0 is available.If the above-right candidate is available, numA1B1B0 is increased by 1.Also, whether the above-right candidate has used VSP is stored in aflag.

e. It is determined whether the bottom-left candidate A0 is available.If the bottom-left candidate is available, numA0B2 is increased by 1.Also, whether the bottom-left candidate has used VSP is stored in aflag.

f. It is determined whether the above-left candidate B2 is available. Ifthe above-left candidate is available, numA0B2 is increased by 1. Also,whether the above-left candidate has used VSP is stored in a flag.

g. If the flag availableFlagT is 1, the following process is carriedout.

-   -   pruneFlagA1 and pruneFlagB1 are set to 0.    -   If the left candidate is available and motion information of a        texture candidate is the same as that of the left candidate,        pruneFlagA1 is set to 1.    -   If the top candidate is available and motion information of a        texture candidate is the same as that of the top candidate,        pruneFlagB1 is set to 1.    -   if pruneFlagA1 and pruneFlagB1 are both 0, a new space is        allocated at numMergeCand position of the list. At this time,        allocating a new space is equal to shifting all of the values        from the numMergeCand position within the list to the right by        one cell.    -   For other cases, the following process is carried out

numA1B1B0 is decreased by 1.

If the left and top candidate are all available and pruneFlagA1 is 0,the second value of the list is set to the first value.

-   -   The first value of the list is set as a texture candidate and        numMergeCand is increased by 1.

h. If the flag availableFlagIvMC is 1, the following process is carriedout.

-   -   pruneFlagA1, pruneFlagB1, pruneFlagT, and addIvMC are set to 0.    -   If a current picture is texture (DepthFlag=1), the following        process is carried out.

If the left candidate is available and motion information of aninter-view candidate is the same as that of the left candidate,pruneFlagA1 is set to 1.

If the top candidate is available and motion information of aninter-view candidate is the same as that of the top candidate,pruneFlagB1 is set to 1.

-   -   If a current picture is a depth map (DepthFlag=0); a texture        candidate is available; and motion information of an inter-view        candidate is the same as that of the texture candidate,        pruneFlagT is set to 1.    -   If all of the pruneFlagA1, pruneFlagB1, and pruneFlagT are 0, a        new space is allocated at numMergeCand position of the list and        addIvMC is set to 1.    -   On the other hand, if a current picture is texture (DepthFlag=0)        and motion information of an inter-view candidate is the same as        that of the left or top candidate, the following process is        carried out.

numA1B1B0 is decreased by 1.

addIvMC is set to 1.

If the left and the top candidate are all available and pruneFlagA1 is0, the second value of the list is set to the first value thereof.

-   -   If addIvMC is 1, the first value of the list is set as a texture        candidate and numMergeCand is increased by 1.

i. numA1B1B0 is added to numMergeCand.

j. If the flag availableFlagIvDC is 1, the following process is carriedout.

-   -   Motion information of an inter-view disparity merge candidate        (IvDC) is compared with that of the left and the top candidate        available. As a result, if the motion information of the        inter-view merge candidate is different from both of the left        and the top candidate, a new space is allocated at numMergeCand        position of the merge list, and the inter-view disparity merge        candidate (IvDC) is added there.    -   numMergeCand is increased by 1.

k. If the flag availableFlagVSP is 1; intensity compensation flag(ic_flag) is 0; a residual error signal prediction index(iv_res_pred_weight_idx) is 0; and numMergeCand is smaller than 5+numberof additional merge candidates NumExtraMergeCand, view synthesis mergecandidates are added to the list, and numMergeCand3DV and numMergeCandare increased by 1.

l. numA0B2 is added to numMergeCand.

m. If the flag availableFlagIvMCShift is 1 and numMergeCand is smallerthan the maximum length of the list (for example, 6), the followingprocess is carried out.

-   -   If an inter-view merge candidate (IvMC) is available, the        inter-view merge candidate is compared with a shifted inter-view        merge candidate (IvMCShift). If the two candidates are different        from each other, a new space is allocated at numMergeCand        position of the list, and the shifted inter-view merge candidate        is added there.    -   numMergeCand is increased by 1.

n. If the flag availableFlagIvMCShift is 0; a current PU is not on adepth map; and numMergeCand is smaller than the maximum length of thelist (for example, 6), the following process is carried out.

-   -   If the shifted inter-view disparity prediction candidate        (IvDCShift) is available, a new space is allocated at        numMergeCand position of the list, and the shifted inter-view        merge candidate is added there.    -   numMergeCand is increased by 1.

In the step of h and j, when an inter-view merge candidate and aninter-view disparity merge candidate are compared with existingcandidates of the list, all of the candidates within the list are notnecessarily involved in the comparison to reduce complexity. As oneexample, only the left and the top candidate may be used for thecomparison.

Table 5 illustrates one example of an existing process for derivingcombined bi-predictive candidates. Table 6 illustrates one example ofreusing a process for deriving HEVC combined bi-predictive candidates inthe 3D-HEVC according to an embodiment of the present invention.

TABLE 5 H.8.5.3.2.3 Derivation process for combined bi-predictivemerging candidates Inputs to this process are: a merging candidate listmergeCandList, a list mergeCandIsVspFlag, the reference indicesrefIdxL0N and refIdxL1N of every candidate N in mergeCandList, theprediction list utilization flags predFlagL0N and predFlagL1N of everycandidate N in mergeCandList, the motion vectors mvL0N and mvL1N ofevery candidate N in mergeCandList, the number of elementsnumCurrMergeCand within mergeCandList, the number of elementsnumOrigMergeCand within the mergeCandList after the spatial and temporalmerge candidate derivation process. Outputs of this process are: themerging candidate list mergeCandList, the number of elementsnumCurrMergeCand within mergeCandList, the reference indicesrefIdxL0combCandk and refIdxL1combCandk of every new candidate combCandkadded into mergeCandList during the invokation of this process, theprediction list utilization flags predFlagL0combCandk andpredFlagL1combCandk of every new candidate combCandk added intomergeCandList during the invokation of this process, the motion vectorsmvL0combCandk and mvL1combCandk of every new candidate combCandk addedinto mergeCandList during the invokation of this process. WhennumOrigMergeCand is greater than 1 and less than MaxNumMergeCand, thevariable numInputMergeCand is set equal to numCurrMergeCand, thevariable combIdx is set equal to 0, the variable combStop is set equalto FALSE, and the following steps are repeated until combStop is equalto TRUE: 5. The variables l0CandIdx and l1CandIdx are derived usingcombIdx as specified in Table 8-6. 6. The following assignments aremade, with l0Cand being the candidate at position l0CandIdx and l1Candbeing the candidate at position l1CandIdx in the merging candidate listmergeCandList: l0Cand = mergeCandList[ l0CandIdx ] l1Cand =mergeCandList[ l1CandIdx ] 7. When all of the following conditions aretrue: mergeCandIsVspFlag[ l0CandIdx ] = = 0, mergeCandIsVspFlag[l1CandIdx ] = = 0, predFlagL0l0Cand = = 1 predFlagL1l1Cand = = 1 (DiffPicOrderCnt( RefPicList0[ refIdxL0l0Cand ], RefPicList1[refIdxL1l1Cand ] ) != 0 ) || ( mvL0l0Cand != mvL1l1Cand ) the candidatecombCand_(k) with k equal to ( numCurrMergeCand − numInputMergeCand ) isadded at the end of mergeCandList, i.e. mergeCandList[ numCurrMergeCand] is set equal to combCand_(k), and the reference indices, theprediction list utilization flags, and the motion vectors ofcombCand_(k) are derived as follows and numCurrMergeCand is incrementedby 1: refIdxL0combCand_(k) = refIdxL0l0Cand refIdxL1combCand_(k) =refIdxL1l1Cand predFlagL0combCand_(k) = 1 predFlagL1combCand_(k) = 1mvL0combCand_(k)[ 0 ] = mvL0l0Cand[ 0 ] mvL0combCand_(k)[ 1 ] =mvL0l0Cand[ 1 ] mvL1combCand_(k)[ 0 ] = mvL1l1Cand[ 0 ]mvL1combCand_(k)[ 1 ] = mvL1l1Cand[ 1 ] numCurrMergeCand =numCurrMergeCand + 1 8. The variable combIdx is incremented by 1. WhencombIdx is equal to (cremented by 1.and is incremented by 1:− 1 ) ) ornumCurrMergeCand is equal to MaxNumMergeCand, combStop is set equal toTRUE.

TABLE 6 H.8.5.3.2.17 Derivation process for base luma motion vectors formerge mode “When slice_type is equal to B, the derivation process forcombined bi-predictive merging candidates” is replaced by “Whenslice_type is equal to B and numMergeCand is less than 5, the derivationprocess for combined bi-predictive merging candidates”

In the process for deriving combined bi-predictive candidates of Table 6according to an embodiment of the present invention reuses the processof an existing HEVC rather than build a new module only for a dependentview or a depth map as in Table 5. Therefore, the method shown in Table6 completely removes the process of Table 5.

Implementation of a process for deriving combined bi-predictivecandidates of Table 6 according to an embodiment of the presentinvention gives a result as shown in Table 7. The video sequences ofTable 7 used in an experiment are the ones officially approved in theJCT-3V standardization.

Table 7 shows a comparison result of encoding efficiency and encodingtime between an existing method (method of Table 5) and the proposedmethod of the present invention (method of Table 6).

TABLE 7 View video PSNR/ synth PSNR/ 0 View 1 View 2 video bitrate totalbitrate Balloons 0.0% 0.0% 0.2% 0.0% 0.0% Kendo 0.0% 0.1% 0.0% 0.0% 0.1%Newspaper_CC 0.0% 0.0% 0.1% 0.0% 0.0% GT_Fly 0.0% 0.0% −0.1% 0.0% 0.0%Poznan_Hall2 0.0% 0.1% 0.2% 0.0% −0.1% Poznan_Street 0.0% 0.0% −0.2%0.0% 0.0% Undo_Dancer 0.0% 0.0% −0.2% 0.0% 0.1% 1024 × 768 0.0% 0.0%0.1% 0.0% 0.0% 1920 × 1088 0.0% 0.0% −0.1% 0.0% 0.0% average 0.0% 0.0%0.0% 0.0% 0.0% Shark 0.0% −0.2% 0.1% 0.0% 0.0%

As shown in Table 7, even though the 3D-HEVC according to an embodimentof the present invention has reused the process for deriving combinedbi-predictive candidates in the HEVC, the comparison result shows thatincrease of PSNR-to-bitrate gain ratio is less than 0.1% compared withan existing method, revealing almost the same encoding efficiency.

The method described in detail above can adopt High Efficiency VideoCoding (HEVC) standard, which is being developed jointly by the MovingPicture Experts Group (MPEG)

the Video Coding Experts Group (VCEG). Therefore, application range ofthe method above can vary according to the block size, Coding Unit (CU)depth, or Transform Unit (TU) depth, as in the example of Table 8. Theparameter (namely, size of depth information) which determines theapplication range can be so configured that an encoder and a decoder usea predetermined value or use a value determined according to a profileor a level; or if an encoder specifies a parameter value in a bitstream, the corresponding decoder uses the value by obtaining it fromthe bit stream. As shown in Table 8, when the application range variesaccording to the CU depth, the method can be applied in three differentways: A) the method is applied only for depth larger than a given value;B) the method is applied only for depth smaller than the given value;and C) the method is applied only for the given depth.

According to Table 8, in case a given CU (or TU) depth is 2, methods ofthe present invention can be applied. In Table 8, the “O” mark indicatesapplication to the corresponding depth, and the “X” mark indicatesnon-application to the corresponding depth.

TABLE 8 Cu (or PU or TU) depth representing application range Method AMethod B Method C 0 X ◯ X 1 X ◯ X 2 ◯ ◯ ◯ 3 ◯ X X 4 or more ◯ X X

When it comes to the case that the methods according to the presentinvention are not to be applied for the whole range of depth, anarbitrary flag may be introduced to indicate the case, or the case maybe indicated by signaling the CU depth by using a value representing theapplication range larger than the maximum CU depth by one.

As additional characteristics of the present invention, application ofthe methods of the present invention can be signaled being included in abit stream. For example, information about application of the methods ofthe present invention can be signaled being included in the syntax of aSequence Parameter Set (SPS), a Picture Parameter Set (PPS), and a sliceheader.

Table 9 illustrates one example of a method for signaling application ofthe methods of the present invention by using the SPS.

TABLE 9 seq_parameter_set_rbsp( ) { Descriptor  profile_idc u(8) reserved_zero_8bits /* equal to 0 */ u(8)  level_idc u(8) ... ue(v) reuse_enabled_flag u(1)  if(reuse _enabled_flag)   reuse_disabled_infoue(v) ...

Table 10 illustrates one example of a method for signaling applicationof the methods of the present invention by using the PPS.

TABLE 10 pic_parameter_set_rbsp( ) { Descriptor  pic_parameter_set_idue(v)  seq_parameter_set_id ue(v)  entropy_coding_mode_flag u(1)  ... reuse_enabled_flag u(1)  if(reuse _enabled_flag)   reuse_disabled_infoue(v) ...

Table 11 illustrates one example of a method for signaling applicationof the methods of the present invention by using the slice header.

TABLE 11 slice_header( ) { Descriptor  slice_type ue(v) pic_parameter_set_id ue(v)  frame_num u(v)  ...  reuse_enabled_flagu(1)  if(reuse _enabled_flag)   reuse_disabled_info ue(v) ...

Table 12 illustrates another example of a method for signalingapplication of the methods of the present invention by using the sliceheader.

TABLE 12 slice_header( ) { Descriptor  lightweight_slice_flag u(1)  if(!lightweight_slice_flag ) {   slice_type ue(v)   pic_parameter_set_idue(v)   frame_num u(v)  ...  }  if( entropy_coding_mode_flag &&slice_type != I)   cabac_init_idc ue(v)  first_slice_in_pic_flag u(1) ...  reuse_enabled_flag u(1)  if(reuse _enabled_flag)  reuse_disabled_info ue(v) ...

In Tables 9 to 12, “reuse_enabled_flag” indicates application of themethods of the present invention. At this time, in case the methods ofthe present invention are applied, “reuse_enabled_flag” becomes ‘1’while, in case the methods of the present invention are not applied,“reuse_enabled_flag” becomes ‘0’, and vice versa.

“reuse_disabled_info” is activated when the methods of the presentinvention are applied (or when “reuse_enabled_flag” is true), whichindicates application of the methods of the present invention accordingto the CU depth (or CU size, macro block size, sub-macro block size, orblock size).

As one example, in case “reuse_disabled_infor” is “0”, methods of thepresent invention can be applied to all of the possible block sizes. Incase “reuse_disabled_info” is “1”, the methods of the present inventioncan be applied only to the block units, the size of which is larger thana 4×4 block.

As another example, in case “reuse_disabled_info” is “2”, the methods ofthe present invention can be applied only to the block units, the sizeof which is larger than a 8×8 block. Or the opposite of the example isalso possible. For example, in case “reuse_disabled_info” is “1”, themethods of the present invention can be applied only to the block units,the size of which is smaller than a 4×4 block. Therefore, syntax of“reuse_disabled_info” can be applied in various ways.

By using the syntax, application of the methods can be determined inunits of a picture (or a frame). Also, the method of the presentinvention can be applied only to the P picture (or frame), andsimilarly, the method of the present invention can be applied only to Bpicture (or frame).

The methods of the present invention can be applied not only to a 3Dvideo codec but also to a scalable video codec. As one example, after anencoding/decoding module used in a base layer of a scalable video codecis applied directly to an enhancement layer, the enhancement layer canbe encoded/decoded additionally be using a partial encoding/decodingmodule. As another example, after a “default merge motion listconstruction” module used in the base layer of the scalable video codecis applied directly to the enhancement layer and a “default merge motioncandidate list” is constructed, the “default merge motion candidatelist” can be modified by additionally using an “additional merge motionlist construction” module, and an “extended merge motion candidate list”for the enhancement layer can be constructed.

FIG. 18 is a flow diagram briefly illustrating a method for constructinga merge motion candidate list at the time of encoding/decoding amulti-view video according to one embodiment of the present invention.

The method of FIG. 18 can be carried out by an apparatus of FIG. 10 andFIG. 12, or can be carried out being applied to a 3D-HEVC. For theconvenience of description, it is assumed that the method of FIG. 18 iscarried out by a merge motion apparatus.

With reference to FIG. 18, the merge motion apparatus derives defaultmerge motion candidates with respect to a current PU and based on thederived default merge motion candidates, constructs a merge motioncandidate list S1800.

The default merge motion candidates, as described above, can includespatial merge motion candidates and temporal merge motion candidateswith respect to the current PU.

For example, as shown in FIG. 8, the merge motion apparatus can derive aspatial merge motion candidate from at least one block among the left,above, above-right, bottom-left, and above-left block spatially locatedclose to the current PU. And the merge motion apparatus can derive atemporal merge motion candidate from a co-located block within aco-located picture with respect to the current PU (for example, a bottomright block and center block).

The merge motion apparatus, as described above, can construct a mergemotion candidate list based on availability of the spatial merge motioncandidates and the temporal merge motion candidates.

In case the current PU is a depth map or a dependent view, the mergemotion apparatus derives an extended merge motion candidate with respectto the current PU S1810.

The extended merge motion candidate refers to a merge motion candidateused for prediction of a dependent view image or a depth map image. Theextended merge motion candidate can include at least one of anInter-view Merge Candidate (IvMC), a view synthesis prediction mergecandidate, and a texture merge candidate.

For example, according to whether the current PU performs inter-viewprediction, an IvMC, an Inter-view Disparity merge Candidate (IvDC), ashifted inter-view merge candidate (IvMCShift), and a shifted inter-viewdisparity merge candidate (IvDCShift). According to whether the currentPU performs view synthesis prediction, a view synthesis merge candidatecan be derived. According to whether a depth map of the current PUperforms motion prediction from a texture block, a texture mergecandidate can be derived.

The merge motion apparatus, by adding the derived extended merge motioncandidate into a merge motion candidate list, can finally reconstruct amerge motion candidate list S1820.

At this time, in case the extended merge motion candidate to be added isnot the same as the default merge motion candidate within the mergemotion list, the merge motion apparatus adds the extended merge motioncandidate to the merge motion candidate list. The extended merge motioncandidate can be added to an arbitrary position within the merge motioncandidate list (for example, at the first index of the list).

Also, in case the sum of the number of extended merge motion candidatesadded to the merge motion candidate list and the number of default mergemotion candidates is smaller than the maximum number of candidates ofthe merge motion candidate list, the merge motion apparatus adds theextended merge motion candidates to the merge motion candidate list.

For example, in case the depth map of the current PU performs motionprediction from a texture block, a texture merge candidate can bederived. At this time, in case a derived texture merge candidate is notthe same as the default merge motion candidate within the list, thetexture merge candidate can be added to the first index within the mergemotion list.

In case the current PU performs inter-view prediction, an IvMC can bederived. At this time, the derived IvMC is not the same as the defaultmerge motion candidate within the merge motion list, the IvMC can beadded to the first index within the merge motion list.

In case the current PU performs view synthesis prediction, a viewsynthesis merge candidate can be derived. At this time, in case the sumof the number of extended merge motion candidates added to the mergemotion candidate list and the number of default merge motion candidatesis smaller than the maximum number of candidates of the merge motioncandidate list, the derived view synthesis merge candidate can be addedto the merge motion candidate list.

Since a specific process of adding the extended merge motion candidatesto the merge motion candidate list has been already described in detailthrough the embodiments of the present invention, specific descriptionswill not be provided in the present embodiment.

Based on the merge motion candidate list described above, motioninformation about the current PU can be obtained, and a predictionsample value of the current PU can be obtained by carrying outprediction of the current PU by using the motion information.

Therefore, the encoder can obtain a residual sample value of the currentPU based on the prediction sample value of the current PU and transmitthe residual sample value to the decoder after performingconversion/quantization and entropy encoding thereof.

In the aforementioned embodiments, methods have been described based onflowcharts as a series of steps or blocks, but the methods are notlimited to the order of the steps of the present invention and any stepmay occur in a step or an order different from or simultaneously as theaforementioned step or order. Further, it can be appreciated by thoseskilled in the art that steps shown in the flowcharts are not exclusiveand other steps may be included or one or more steps do not influencethe scope of the present invention and may be deleted.

While some exemplary embodiments of the present invention have beendescribed with reference to the accompanying drawings, those skilled inthe art may change, modify, and substitute the present invention invarious ways without departing from the essential characteristic of thepresent invention. Accordingly, the various embodiments disclosed hereinare not intended to limit the technical spirit but describe with thetrue scope and spirit being indicated by the following claims. The scopeof the present invention may be interpreted by the appended claims andthe technical spirit in the equivalent range are intended to be embracedby the invention.

What is claimed is:
 1. A method for video decoding that supports amulti-view, comprising: constructing a merge motion candidate list byderiving a default merge motion candidate with respect to a currentPrediction Unit (PU); deriving an extended merge motion candidate withrespect to the current PU in response to the current PU being a depthmap or a dependent view; and adding the extended merge motion candidateto the merge motion candidate list in response to the extended mergemotion candidate not being the same as the default merge motioncandidate within the merge motion candidate list, wherein the extendedmerge motion candidate comprises a view synthesis prediction mergecandidate that is derived according to whether a view synthesisprediction of the current PU is performed, and wherein the adding theextended merge motion candidate comprises adding the view synthesisprediction merge candidate into the merge motion candidate list inresponse to a sum of a number of extended merge motion candidatesalready added to the merge motion candidate list and a number of defaultmerge motion candidates being smaller than a maximum number of the mergemotion candidate list.
 2. The method of claim 1, wherein the extendedmerge motion candidate is added to an arbitrary position within themerge motion candidate list.
 3. The method of claim 1, wherein thedefault merge motion candidate comprises either one or both of a spatialmerge motion candidate and a temporal merge motion candidate of thecurrent PU; the spatial merge motion candidate comprises any one blockor any combination of any two or more of a left block, an above block,an above-right block, a bottom-left block, and an above-left blocklocated spatially close to the current PU; and the temporal merge motioncandidate comprises a co-located block within a co-located picture withrespect to the current PU.
 4. The method of claim 1, wherein theextended merge motion candidate comprises any one or any combination ofany two or more of an Inter-view Merge Candidate (IvMC), a viewsynthesis prediction merge candidate, and a texture merge candidate. 5.The method of claim 4, wherein in the deriving of the extended mergemotion candidate, the IvMC is derived according to whether an inter-viewprediction of the current PU is performed.
 6. The method of claim 4,wherein in the deriving of the extended merge motion candidate, thetexture merge candidate is derived according to whether a motionprediction of a depth map of the current PU is performed from a textureblock.
 7. The method of claim 2, wherein the arbitrary position is afirst index within the merge motion candidate list.
 8. A method forvideo decoding that supports a multi-view, comprising: constructing amerge motion candidate list by deriving a default merge motion candidatewith respect to a current Prediction Unit (PU); deriving an extendedmerge motion candidate with respect to the current PU in response to thecurrent PU being a depth map or a dependent view; and adding theextended merge motion candidate to the merge motion candidate list inresponse to the extended merge motion candidate not being the same asthe default merge motion candidate within the merge motion candidatelist, wherein in the adding of the extended merge motion candidate, theextended merge motion candidate is added to the merge motion candidatelist in response to a sum of a number of the extended merge motioncandidates added to the merge motion candidate list and a number ofdefault merge motion candidates being smaller than a maximum number ofthe merge motion candidate list.
 9. The method of claim 6, wherein inresponse to the motion prediction of the depth map of the current PUbeing performed from the texture block, in the deriving of the extendedmerge motion candidate, the texture merge candidate is added to a firstindex within the merge motion candidate list in response to the texturemerge candidate not being the same as the default merge motion candidatewithin the merge motion candidate list.
 10. The method of claim 5,wherein in response to the inter-view prediction of the current PU beingperformed, in the adding of the extended merge motion candidate, theIvMC is added to a first index within the merge motion candidate list inresponse to the IvMC not being the same as the default merge motioncandidate within the merge motion candidate list.
 11. An apparatus forvideo decoding that supports a multi-view, comprising: a default mergemotion list constructor configured to construct a merge motion candidatelist by deriving a default merge motion candidate with respect to acurrent Prediction Unit (PU); and an additional merge motion listconstructor configured to derive an extended merge motion candidate withrespect to the current PU in response to the current PU being a depthmap or a dependent view and add the extended merge motion candidate tothe merge motion candidate list in response to the extended merge motioncandidate not being the same as the default merge motion candidatewithin the merge motion candidate list, wherein the extended mergemotion candidate comprises a view synthesis prediction merge candidatethat is derived according to whether a view synthesis prediction of thecurrent PU is performed, and wherein the view synthesis prediction mergecandidate is added into the merge motion candidate list in response to asum of a number of extended merge motion candidates already added to themerge motion candidate list and a number of default merge motioncandidates being smaller than a maximum number of the merge motioncandidate list.
 12. A method for video encoding that supports amulti-view, comprising: constructing a merge motion candidate list byderiving a default merge motion candidate with respect to a currentPrediction Unit (PU); deriving an extended merge motion candidate withrespect to the current PU in response to the current PU being a depthmap or a dependent view; and adding the extended merge motion candidateto the merge motion candidate list in response to the extended mergemotion candidate not being the same as the default merge motioncandidate within the merge motion candidate list, wherein the extendedmerge motion candidate comprises a view synthesis prediction mergecandidate that is derived according to whether a view synthesisprediction of the current PU is performed, and wherein the viewsynthesis prediction merge candidate is added into the merge motioncandidate list in response to a sum of a number of extended merge motioncandidates already added to the merge motion candidate list and a numberof default merge motion candidates being smaller than a maximum numberof the merge motion candidate list.